package ru.st.selenium;

import org.testng.annotations.*;

import static org.junit.Assert.*;
import ru.st.selenium.model.Employer;
import ru.st.selenium.pages.TestBase;

public class VerifyLoginPassword extends TestBase {

	// BeforeMethod выполняется ПЕРЕД каждым тестовым методом в этом классе.
	@BeforeMethod
	public void mayBeLogout() {
		if (app.getUserHelper().isNotLoggedIn()) {
			return;
		}
		app.getUserHelper().logout();
	}

	// Проверка - Авторизация не прошла, вывод ошибки - fail password
	// остаемся на странице входа в систему
	@Test
	public void PasswordError() throws Exception {
		app.getNavigationHelper().maximizeWindow();
		Employer user = new Employer().setLoginName("admin").setPassword("fail");
		app.getUserHelper().loginAs(user);
		assertTrue(app.getUserHelper().isNotLoggedIn());
	}

	// Проверка - Авторизация не прошла, вывод ошибки - fail login
	// остаемся на странице входа в систему
	@Test
	public void LoginError() throws Exception {
		app.getNavigationHelper().maximizeWindow();
		Employer user = new Employer().setLoginName("fail").setPassword("admin");
		app.getUserHelper().loginAs(user);
		assertTrue(app.getUserHelper().isNotLoggedIn());
	}

	// Метод - проверка авторизации, валидность логина/пароля и выход из системы
	@Test
	public void LoginSuccess() throws Exception {
		app.getNavigationHelper().maximizeWindow();
		Employer user = new Employer().setLoginName("admin").setPassword("admin");
		app.getUserHelper().loginAs(user);
		assertTrue(app.getUserHelper().isLoggedInAs(user)); // Проверяем, что залогинен именно тот пользователь,
														    //к-й входил в систему
		app.getNavigationHelper().gotoTopFrem();
		app.getUserHelper().logout();
		assertTrue(app.getUserHelper().isNotLoggedIn());
	}

}